As is well known, an IC CARD comprises non-volatile memories, for instance ROM and EEPROM memory portions, wherein data and algorithms are stored when the IC CARD is not electrically powered. When an algorithm needs to be executed, it is loaded from the non-volatile memories to the volatile memory RAM, together with specific data required from the same algorithm.
In particular, algorithms and data are organized inside the non volatile memories according to a storage system, commonly and hereinafter referred as file system, that drives their organization and retrieving, for instance for their loading inside RAM or for communication with an external read-write device.
The ISO 7816-4 standard defines how the data storage on the IC Card might be organized in a file system and the access methods to the file system, as well as the access methods to algorithms and the standard communication protocol to communicate between an electronic read-write device and the IC CARD file system.
More particularly, file systems of this kind support two categories of files: dedicated files (hereinafter DFs) and elementary files (hereinafter EFs) and are based on a logical organization of data able to organize and retrieve files independently from their physical structure inside the non-volatile memories, based on a hierarchical structure of DFs.
Generally the DF at the root is called the master file (MF) and is mandatory while other DFs are optional. EFs are classified in internal elementary files (IEFs), intended for storing data used only by the IC Card as instance for control purposes, and working elementary files (WEFs), intended for storing data not interpreted by the IC Card, for instance used by an external read-write device.
Generally the file system defines how files are referenced, structured, sized and accessed; for example the file system states that an EF is: referenced by a file identifier 2 bytes long or alternatively by a path from the MF to the EF constituted by a concatenation of file identifiers. Furthermore, the EF can be structured in two possible ways: a “transparent structure” that is a sequence of data units or a “record structure” that is a sequence of individually identifiable records. Moreover, the EF can be sized on fixed or variable records organized as a sequence (linear structure) or as a ring (cyclic structure).
It is evident by the previous description that IC Card file system is very similar to the file system implemented on other electronic read-write devices for non IC Card purposes, for instance PDAs, electronic calculators and workstations in general. For example many analogies can be noted between a well known file system for personal computers, like Microsoft Windows 2000 or UNIX, and the IC Card file system.
For instance, Microsoft Windows 2000 stores files in a directory, this directory can contain other directories and a mandatory root directory (“C:\”) contains all the above directories in nested format; this is very similar to the IC Card file system, if we consider that a DF can contain EFs and other DFs and all the DFs are contained in nested format in MF.
Even if these two types of file systems share a basic and similar concept, they can't communicate. First of all, file systems for electronic read-write devices for non IC Card purposes are more flexible, for example allowing to reference files with a user provided alphanumeric file name, of arbitrary length, very different from the hexadecimal file identifier 2 bytes long usually allowed by IC Card file system.
Also, IC Card file systems are designed to manage secure data and it would be undesirable to disclose its content to an IC Card electronic device different from the common electronic read-write device expressly designed to read it, for example a workstation.
Even if this type of IC Card file system has advantages, especially for security reasons, from various points of view, it also has known drawbacks which are particularly evident when it is necessary to share non-secret files of the IC Card file system with an electronic read-write devices non IC Card purpose, for example to update files or to upgrade an application or algorithm stored inside the IC Card file system.
As a matter of fact the IC Card file system is completely closed with respect to electronic read-write devices for non IC Card purposes, not only providing a protection strategy but also denying access by common and useful applications to improve the functionality of the IC Card and to render it a complete and integrated support.
The U.S. Pat. No. 6,944,650 discloses an interface application between applications stored in an IC Card and an external file system, for example belonging to a host device. However, in this case files of the external file system may be accessed by applications stored inside the IC Card only through the interface application, since such files are not in a standard IC Card file system format, for example according to ISO 7816-4 specifications.